Mar*_*lot 3 regex delphi delphi-10.3-rio
我想使用正则表达式从我的源代码中提取信息。你能帮我构建一个正则表达式来检索源代码中使用的单位吗?。
源代码示例:
unit ComandesVendes;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Manteniment;
type
TFComandesVendes = class(TFManteniment,ActualitzacioFinestra)
QRCapsaleraNumero: TIntegerField;
QRCapsaleraData: TDateTimeField;
QRCapsaleraDataEntrega: TDateTimeField;
...
...
Run Code Online (Sandbox Code Playgroud)
我需要从uses子句到下一个;. 在该示例中,输出必须是:
Windows
Messages
SysUtils
Variants
Classes
Graphics
Controls
Forms
Dialogs
Manteniment
Run Code Online (Sandbox Code Playgroud)
我正在尝试类似的东西
^ *uses(\n* *(\w*),)* *\n* *(\w*) *;
Run Code Online (Sandbox Code Playgroud)
它匹配 uses 子句,但它不会分别返回每个文件名。
谢谢你。
在此页面上,它说 Delphi 使用 PCRE 正则表达式风格。
在这种情况下,一种选择是将捕获组与\G锚点结合使用。
(?:^ *uses\r?\n *|\G(?!^))(\w+)(?:,\s*|;$)
Run Code Online (Sandbox Code Playgroud)
解释
(?: 非捕获组
^ *uses\r?\n * 匹配字符串开头的可选空格,然后再次匹配换行符和可选空格| 或者\G(?!^)断言在上一场比赛结束时的位置,而不是在开始处(\G锚点匹配 2 个位置,要么在字符串的开头,要么在上一场比赛的末尾)) 关闭非捕获组(\w+)捕获组 1匹配 1+ 个单词字符(?:,\s*|;$)非捕获组,匹配逗号和 0+ 空格字符或匹配;字符串末尾。| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |