我有 test.txt 文件,我使用PHP上传和阅读。
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//GET FILE
$file = $_FILES['file']['tmp_name'];
//READ FILE CONTENT AND PUT IT TO STRING
$read_file = file_get_contents($file);
}
一切都很完美......
if ( ) { int myVariable = 1254 ; //this is my comment }
我上传的这个test.txt文件包含这行代码..
我想在阅读此文件后获得此结果:
One Identifier Found: myVariable
One Keyword Found: if
One Number Found: 1254
我试图爆炸此文件并使用正则表达式来比较此文件中的每个单词
$read_file_array = explode(" ", $read_file);
我想阅读整个文件并获得相同的结果,而不会爆炸文件取决于空格。 因为该文件可能不包含空格。
由于
答案 0 :(得分:0)
这是一个非常复杂的问题。你基本上是在尝试创建一个编程语言解析器。您需要绝对定义适合您尝试查找结果的每个类别的内容:
我想做的事情:
我想在阅读此文件后获得此结果:
One Identifier Found: myVariable One Keyword Found: if One Number Found: 1254
将其设置出来,您可以使用它来定义正则表达式规则。例如,在PHP中,标识符变量是$<name>
,因此您可以使用'/($[a-z]+[a-z0-9]*)/i'
这样的正则表达式:
我无法定义您的关键字搜索,因为您需要先定义关键字的实际内容。 Sausage
是关键字吗?为什么?这些信息是如何获得的?
要查找数字,您可以执行某些操作,例如检查值是否在某个字符之后,例如等号'\s*=\s*(\d+)'
将搜索并找到可能的空格,等于,其他可能的空格随后但1位或更多位数。
我认为你应该离开并阅读有关Regex如何工作的文档和书籍以及在线文字以及正则表达式所经历的逻辑过程,以便最好地设置您的标准以适应正则表达式能够做什么和不能做什么。