说我有一个字符串
"3434.35353"
和另一个字符串
"3593"
我如何制作一个能够同时匹配两者的正则表达式,而不必在另一个失败的情况下将模式设置为其他形式呢?我知道\d+
会匹配3593
,但不会对进行任何操作3434.35353
,但是(\d+\.\d+
)仅会匹配带有小数的那个,而不会返回与匹配的匹配项3593
。
我希望m.group(1)
返回:
"3434.35353"
要么
"3593"
您可以?
在一组字符后面加上a ,使其成为可选字符。
你想要一个点后跟任意数量的数字\.\d+
,组合在一起(\.\d+)
,可选(\.\d+)?
。坚持你的模式:
import re
print re.match("(\d+(\.\d+)?)", "3434.35353").group(1)
3434.35353
print re.match("(\d+(\.\d+)?)", "3434").group(1)
3434
问题内容: 我正在尝试验证一个没有多余字符的(美国)电话号码。因此格式为1-555-555-5555,没有破折号,空格等,并且1是可选的。但是,我的正则表达式仅会排除前导数字为1的数字,并说没有该数字的数字将无效。这是我在使用的地方,我哪里出错了? 问题答案: 用: ?表示“可选”。
我正在尝试编写一个bash脚本,其中包含一个函数,因此当给定一个,,etc.文件它使用带有相关开关的tar来解压缩文件。 我使用if-elif-then语句来测试文件名的结尾,但我无法使用regex元字符使其匹配。 为了节省不断重写脚本,我在命令行中使用“test”,我认为下面的语句应该可以工作,我已经尝试了括号、引号和元字符的每一个组合,但仍然失败。 我相信问题很简单,我到处都找过了,但我不知道
问题内容: 在Python 2.6中。似乎字符串末尾的那个标记和不符合组表达式兼容。佛的例子 退货 (因此实际上无效)。并使用 导致错误: 为什么这样工作以及如何解决? 问题答案: 甲表达式是一个 字符组 ,这意味着它会匹配任何一个字符包含在其中。因此,您正在匹配文字字符。字符组始终适用于一个输入字符,因此永远不能包含锚点。 如果要匹配空格字符 或 字符串的结尾,请改用非捕获组,将其与或选择器结合
字符串可以说是程序设计中最为重要的数据类型之一。几乎每种高级编程语言都有它的一席之地,而且能有效的使用它也是开发者编写实用程序的基本准则。作为重要的扩展,正则表达式赋予开发者操作字符串的额外能力。ECMAScript 6 的缔造者们将这些事实牢记于心,改进了字符串和正则表达式,并添加了长久以来缺失的某些功能。本章会讲解它们的变化之处。 译者注: gitbook 无法正常解析 $$ 字符,所以在模板
问题内容: 我想使用来自用户的输入作为正则表达式模式来搜索某些文本。它可以工作,但是我该如何处理用户在正则表达式中放置有意义的字符的情况?例如,用户要搜索:正则表达式引擎会将(s)分组。我希望它像对待字符串一样对待它。我可以replace在用户输入上运行并将和 替换,但是问题是我将需要对每个可能的正则表达式符号进行替换。你知道更好的方法吗? 问题答案: 使用此功能: 4.2.3 re模块内容 转义
问题内容: 我已经阅读了Stackoverflow上的其他问题,但还没有结束。抱歉,如果已经可以回答,但是我没有任何建议在那里工作。 一切都很好,然后我尝试使用其中包含挪威字符的内容(或更像unicode的内容): 如何匹配øæå等典型的unicode字符?我希望能够同时在上述标记组和文件名标记组中匹配这些字符。 问题答案: 您需要指定标志, 并 使用前缀将您的字符串输入为Unicode字符串: