在perl中匹配字符串和整数
我有一串数字,例如“4 2 6 7”,还有一个整数变量 i
。如何确定 i
是否包含在字符串中?代码是用perl写的...
I have a string of numbers, like "4 2 6 7", and a variable i
which is an integer. How can I decide if i
is included in the string? The code is in perl...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用这个函数:
Use this function:
您可以使用 split 从字符串“4 2 6 7”创建一个数组,然后使用 grep 搜索该数组。
编辑:
或者您可以使用“==”而不是“eq”作为比较运算符来匹配数字而不是字符串。
You can use split to create an array from the string "4 2 6 7", and then use grep to search the array.
EDIT:
Or you can use '==' instead of 'eq' as the comparison operator to match numbers instead of strings.
为了好玩,
~~
智能匹配运算符:关于智能匹配运算符的强大功能的精彩讨论可以在 perlsyn。它可能有点棘手,因为它不是关联运算符,并且规则深深植根于 DWIMery 而不是一致性。但它非常强大。
For the fun of it, the
~~
smart match operator:A good discussion on the power of the smart match operator is found in perlsyn. It can be a little tricky, since it's not an associative operator, and the rules are deeply rooted in DWIMery rather than consistency. But it's very powerful.
使用此正则表达式将变量 i 与字边界匹配(假设您的数字字符串在每个整数后面都有一个空格):
Use this regular expression to match the variable i with a word boundary (assuming your string of numbers have a space after each integer):
这是一个不关心字符串的分隔符或格式的版本。它只是提取数字序列并将它们与搜索模式进行比较。
为了方便起见,我把它做成了一个子程序和一个函数程序。
输出示例:
Here's a version that does not care about the delimeters or formatting of your string. It just extracts sequences of digits and compares them to the search pattern.
I made it into a sub and a functional program, for convenience.
Example output:
您可以借助 split 函数轻松完成此操作。
在键盘上尝试一下:http://codepad.org/f5a86c9s
You can do it easily with the help of split function.
Try it on codepad: http://codepad.org/f5a86c9s