相关疑难解决方法(0)

PHP:如何获取preg_match_all的字符串索引?

假设我有两个正则表达式,

/eat (apple|pear)/
/I like/
Run Code Online (Sandbox Code Playgroud)

和文字

"I like to eat apples on a rainy day, but on sunny days, I like to eat pears."
Run Code Online (Sandbox Code Playgroud)

我想要的是使用preg_match获取以下索引:

match: 0,5 (I like)
match: 10,19 (eat apples)
match: 57,62 (I like)
match: 67,75 (eat pears)
Run Code Online (Sandbox Code Playgroud)

有没有办法使用preg_match_all获取这些索引,而不是每次循环文本?

编辑:解决方案 PREG_OFFSET_CAPTURE!

php regex preg-match-all

6
推荐指数
1
解决办法
6861
查看次数

如何在字符串中找到第一个alpha [A-Za-z]的位置?

可能重复:
如何在字符串中找到正则表达式匹配的索引?
如何在字符串中获取正则表达式匹配的位置?

给定以下字符串,如何在每个字符串中找到第一个alpha的位置?

1) - Alpha

2) beta

3) . Gamma

4) 'delta'

最终我在子串之后,从第一个alpha字符开始.所以我想要将我的子串偏移得到Alpha.

我正在寻找的补偿(来自上面的例子)是:

1)2

2)0

3)2

4)1

我不关心任何特殊人物.只是第一个alpha,不区分大小写(A-Za-z).

php regex string substring

3
推荐指数
1
解决办法
2306
查看次数

运行正则表达式 - 需要找到字符串模式出现的确切位置

这是前一个问题的后续跟进.

正则表达式工作得很好但是我需要能够找出模式出现的确切位置.例如,如果我的正则表达式是从以下字符串中提取子字符串'bob'的实例:

This is abobsled
Run Code Online (Sandbox Code Playgroud)

我想知道字符串中第一次出现模式的确切字符位置,即在这种情况下,它在第10个字符位置 - 这可能吗?我在这里使用php.

==========================

谢谢,我想我再次陷入困境 - 但目前这是我想要做的.让我们说我有这种性质的模板:

Hello <=name=>

Take Care

From <=sender=>
Run Code Online (Sandbox Code Playgroud)

现在这很简单,因为所有细节都是一个单词,但是如果要替换标签的数据扩展到多行,我想设置它,所以它保持一些格式化,就像我使用的正则表达式一样,如果我用它来代替一个用多线的东西标记我得到以下内容:

Numbers: <=numbers=>
Run Code Online (Sandbox Code Playgroud)

Numbers: number1
number2
Run Code Online (Sandbox Code Playgroud)

当我想要的东西:

Numbers: Number1
         Number2
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 :(

php regex

0
推荐指数
1
解决办法
1658
查看次数

标签 统计

php ×3

regex ×3

preg-match-all ×1

string ×1

substring ×1