【发布时间】:2012-05-12 20:38:11
【问题描述】:
我有这个字符串:
城市 - 这是一些文字。还有一些 - 并在此处继续。
我想在第一个'-'处拆分字符串以找到'city'(只是一个示例词,也可以是其他词)。加上查找' - '之后的其余文本。
我构造了这个表达式:
(^[\D\W\S]*)( - )([\D\W\S]*)
但这会找到最后一次出现的 ' - ' 而不是第一个。
如何在第一次出现时停止?
【问题讨论】:
-
大多数语言都有按特定字符分割字符串的功能,甚至可以限制分割次数。你应该使用这样的功能。如果您让我们知道您使用的是哪种语言,我们可以为您提供更多帮助。
-
这取决于正则表达式引擎。你在用什么?
-
来吧伙计们,为什么要否决这个?这是一个公平的问题,他确实投入了一些研究工作,并展示了他的尝试。这比我们从大多数新人那里得到的要多得多。所以,来自我,user1391459,欢迎来到 StackOverflow,并坚持下去! (另外,选择一个更好的用户名也是一个好主意:))
-
顺便说一句,你是怎么想到
[\D\W\S]的?它的意思是“一个不是数字或不是字母数字的字符(已经包含“不是数字”)或不是空白字符。因此,它匹配任何字符,在正则表达式中,这就是点(.:任何字符(换行符除外))。除非您使用 JavaScript,在这种情况下,如果您没有允许您指定单行模式的选项,您可能需要[\S\s],所以点真的匹配 any 字符。 -
我需要表达式来匹配 Drupal Feeds xpath 解析器中的某个文本。点是不够的,因为它还应该匹配换行符。由于我的测试,我错误地将它留在这里。 [\S\s].* 不起作用。我现在实际上使用 [\D\W\S\n]。我为 php 找到了替代 /(.*)/sU 但这在 xpath 解析器中不起作用。
标签: regex