给定这个字符串:hello"C07","73"
(包括引号)我想要“C07”。我正在使用(?:hello)|(?<=")(?<screen>[a-zA-Z0-9]+)?(?=")
尝试这样做。然而,它也始终匹配“73”。我试过...0-9]+){1}...
,但这也行不通。我一定误解了这是如何工作的,但我想不出任何其他方法。
如何获取引号之间的第一组字符?
编辑:这是 a link显示我的问题。
编辑:好的,这正是我想做的:
基本上,我想要得到的是:1)“hello”的正匹配,2)一个名为“screen”的组,在本例中为“C07”,3)一个名为“screen”的组“格式”,在本例中为“73”。
“C07”和“73”都会有所不同。 “你好”永远都是一样的。 “hello”和第一个双引号之间可能有也可能没有额外的逗号。
最佳答案
对于您最初的问题,即如何在第一个匹配后停止,要么删除全局搜索,要么从字符串的开头搜索即可完成此操作。
对于后一个问题,您可以为您的组命名,并在整个行中不断扩展模式。
hello"(?<screen>[^"]+)","(?<format>[^"]+)"
关于regex - 只获取正则表达式中的第一个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43747556/