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

时间:2017-10-24 09:51:06

标签: regex

我正在写一个正则表达式来截断第二个字段。我写了一个正则表达式,但它并不适用于所有情况。

数据:

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

myregex:

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

请参阅regex demo

<强>详情

  • ^ - 字符串开头(m选项,行首)
  • \S+ - 一个或多个非空格(如果您想确保此处只有1 _,请将此替换为\S+[^\s_]+[^\s_]*_取决于要求)
  • _ - 必须至少有1 \S+
  • \.sh - 一个或多个非空格
  • .sh - \s+子字符串
  • (?<ScriptName2>\S+) - 1+空格
  • ToggleButton sound; MediaPlayer sip; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sound = (ToggleButton) findViewById(R.id.Sound1); sip = MediaPlayer.create(Naruto.this, R.raw.sip2); sip.start(); sound.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { if (sound.isChecked() == true) { sip.start(); } else { sip.start(); } } }); } - group&#34; ScriptName2&#34;:1个或多个非空格