如何使用正则表达式仅捕获具有特定格式的有效句子的第一个单词? [复制]

Posted

技术标签:

【中文标题】如何使用正则表达式仅捕获具有特定格式的有效句子的第一个单词? [复制]【英文标题】:How to capture only the first word of a valid sentence with a specific format with Regex? [duplicate] 【发布时间】:2020-01-07 14:48:19 【问题描述】:

我有一些文本,其中有效行以"- " 开头,后跟一个句子。 我要捕获 是有效行上以小写字母开头的第一个单词

在下面的示例文本中,应仅捕获 "hello""happy" "Friday""monday""saturday"

- hello             
- happy birthday
- Friday
# monday
saturday

到目前为止,我已经构建了这个Regex expression:-\s\b[a-z]+,但它使用以下文字捕获"- "

【问题讨论】:

您需要将要提取的部分用一对捕获括号括起来,然后抓取matcher.group(1)。只需like here。 /^-\s*?([a-z][a-zA-Z]*)/gm 应该这样做 @MonkeyZeus 还是用第一个单词捕获“-” 您应该花一些时间阅读捕获组。 【参考方案1】:

许多可能的解决方案之一可能是

^-\s+([a-z]\w+)

a demo on regex101.com


请注意,Java 中的反斜杠需要转义,以便表达式变为:
^-\\s+([a-z]\\w+)

【讨论】:

这仍然使用捕获的单词捕获“-”? 匹配捕获是有区别的。使用第一个捕获组

以上是关于如何使用正则表达式仅捕获具有特定格式的有效句子的第一个单词? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式检查句子中仅包含字母的两个单词

正则表达式 - 捕获除以“[”开头的句子之外的所有内容

如何仅对一个命名捕获组执行正则表达式替换?

如何编辑我的正则表达式,使其仅捕获(不包括)引号之间的子字符串?

如何使用正则表达式查询 pymongo 以获取仅包含数字的值

用于捕获嵌套括号中的值的正则表达式