当前位置: 首页 > 知识库问答 >
问题:

正则表达式截断由空间分隔的第二个字段

轩辕季同
2023-03-14

我正在编写一个正则表达式来截断第二个字段。我已经写了一个正则表达式,但它不是在所有情况下都有效。

数据:

qcst_macroPlayback.sh -play qcstTools/qcstOutFiles/qcst_out_macroPlayback_20500_12102017-131013.5574.xml
qcst_runningProcessesDetails.sh -LS
qcst_coreGrabber.sh DIR1

输出应为:

-play
-LS
DIR1

我的正则表达式:

^\S+_[^\.]+.sh(?<ScriptName2> [^\.]+ )

链接到测试正则表达式https://regex101.com/r/P0Rnku/1

共有1个答案

皮煜
2023-03-14

您可以使用以下正则表达式:

^\S+_\S+\.sh\s+(?<ScriptName2>\S+)

或者,如果不需要检查_存在,则将其缩短为

^\S+\.sh\s+(?<ScriptName2>\S+)

参见正则表达式演示。

细节

  • ^ -字符串开头(带< code>m选项,一行的开头)
  • < li> \S -一个或多个非空格(如果您想确保此处只有一个< code>_,请根据需要用 [^\s_] [^\s_]*替换这个和下一个< code > \ s ) < li> _ -必须至少有1个< code>_ < li> \S -一个或多个非空格 < li> \。sh - a 。sh子字符串 < li> \s - 1个空格 < li> (?

 类似资料:
  • 我有一个数据帧,其中一列是一系列字符串,其中截然不同的短语要么是单个单词,要么是用空格分隔的多个单词;每个单词的第一个字母都是大写字母(例如“草莓”或“草莓果酱”)。相反,如果这些词不是同一短语的一部分,则不会间隔开(例如“jamapple”)。 我如何使用regex在一个字符串中根据上面的规则将短语分开(分为“草莓果酱”、“苹果”、“香蕉”、“梨碎”、“土豆”、“杏仁蛋糕”)。然后提取他们?即获

  • 我有一组由连字符分隔的ID,其中至少可以有6个字符,包含字母数字值和一些特殊字符,在末尾,只有数字值是不允许的。如下所示: 我正在尝试下面给出的具有以下规则的以下模式,但面临一些测试查询的困难... https://regex101.com/r/d8MFRE/5

  • 问题内容: 我正在尝试构造一个正则表达式(用于Java)以截断小数点后的零。例如 50.000→50 50.500→50.5 50.0500→50.05 -5→-5 50→50 5.5→5.5 想法是以最紧凑的形式表示实数(或整数)。 这是我构造的: 我用来捕获截断的数字字符串。 上面的模式的问题是50被截断为5。我需要某种方式来表示必须遵循(小数点)。 我尝试过使用负数落后,但没有任何匹配。 问

  • 我在Javascript中有以下正则表达式: 这将检查字符串是否至少有两个大于1个字符的单词。 前- 我现在有了一个新的要求,我试图实现它,但不能正确执行。 新要求:能够有一个逗号分隔的相同类型的输入列表。不能以逗号结尾。根据上述规则,每个项目必须有效 如果没有逗号,则其也是有效的 所有字符都是字母,没有数字/特殊字符

  • 我想验证由一些分隔符分隔的单词输入。本例中的分隔符是“|”符号,前后用空格分隔 到目前为止,我只听到了第一个单词,下面是rejex: 如何用空格和分隔符分隔单词或数字?PS仍在学习教程。任何帮助都将不胜感激 为了进一步澄清,我正在为上面的dojo dijit小部件寻找正则表达式,以正确验证输入。

  • 我正在尝试编写一个正则表达式,使其只有两个单词,它们之间只有一个空格。两个字都不能少于三个字符。例子:乔·史密斯