小编Wis*_*guy的帖子

为什么非逐字字符串不能包含换行符?

我开始学习C#,我不明白为什么常规字符串文字(即" ")不能包含文字换行符.(我不是在谈论逃脱序列\n).我知道你必须@" "对多行字符串使用逐字字符串文字(即),但为什么呢?

常规字符串生成 逐字字符串不会产生错误

我没有看到它明确声明你不能在常规字符串中使用它们.更重要的是,除了传递中我可以使用逐字字符串的地方,我读过的所有内容似乎都表明在常规字符串文字中允许使用文字换行符.

从Visual C#2010代码开始:生成多行字符串文字(Visual C#)显示逐字多行字符串的示例,无需进一步说明.

学习C#3.0说:

在C#语言中,空格,制表符和换行符被认为是空格....在C#语句中通常会忽略额外的空格....此规则的例外是字符串中的空格被视为文字; 它不被忽视.

这是字面上的吗?这也是我所期望的,但事实并非如此.
它甚至包括这个提示框:

提示
Visual Basic程序员注意到:在C#中,行尾没有特殊意义.语句以分号结束,而不是换行符.没有行继续符,因为不需要.

(我意识到这是在字符串之外讨论,但是如果字符串不在字符串之外,为什么行尾会字符串中有特殊的解析意义?)

终于找到了我的方式(C#Reference)本身,我仍然没有获得任何见解:

字符串文字可以包含任何字符文字.包括转义序列.以下示例\\对反斜杠,\u0066字母f和\n换行使用转义序列.

它说可以使用转义序列,但它并没有说它们必须被使用.字面换行字符是否未包含在"任何字符文字"中?如果我有一个包含文字制表符而不是其转义序列的字符串,\t则没有错误.但是,如果我有一个文字换行符,我会收到一个错误.我甚至改变了文件的行结束\r\n\n\r没有效果.


显然,我能够从示例和Visual Studio错误推断,如果它包含一个文字换行符,则需要一个逐字字符串,但我读过的所有内容都表明不应该是这种情况.为什么不同?

c# string

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

解析错误:语法错误,意外T_ECHO中

导致此错误的原因是什么?

解析错误:语法错误,第19行的C:\ wamp\www\game\rankings.php中的意外T_ECHO

这是代码

<?php
session_start();
include("header.php");
if(!isset($_SESSION['uid'])) {
  echo "You must be logged in to view this page";
}else{ 
  ?>
  <center><h2>Battle Players</h2></center>
  <br />
  <table cellpadding="2" cellspacing="2">
    <tr>
      <td width="50px"><b>Rank</b></td>
      <td width="150px"><b>Username</b></td>
      <td width="200px"><b>Gold</b></td>
    </tr>
    <?php
    $get_users = mysql_query("SELECT `id`,`overall` FROM `ranking` WHERE `overall`>'0' ORDER BY `overall` ASC") or die(mysql_error());
    while($row = mysql_fetch_assoc($get_users)) { var_dump($row)
    echo "<tr>";
    echo "<td>". $row['overall']. "</td>";
    $get_user = mysql_query("SELECT `username` FROM `user` WHERE `id`='".$row['id']."'") or die(mysql_error());
    $rank_name = mysql_fetch_assoc($get_user);
    echo "<td><a href=\"stats.php?id=" .$row['id']."\">" . …
Run Code Online (Sandbox Code Playgroud)

php

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

从左侧开始使用正则表达式(即两边最窄的匹配)

假设我正在尝试与/dog.*lab/此文本匹配:

"我有一只狗.我的狗是一个黑人实验室.他是在实验室里创造的."

贪婪地,它会匹配" 狗.我的狗是一个黑色的实验室.他是在实验室里创造的 ".

我想找到两边最窄的比赛.如果我使用ungreedy修饰符,
/dog.*?lab/或者/dog.*lab/U它会匹配较少但仍然太多:
"狗.我的狗是黑色实验室"

有没有办法从左边开始搜索我的搜索,因此只匹配" 狗是黑实验室 "?

非常感谢.抱歉这个人为的例子.

php regex lookahead

5
推荐指数
1
解决办法
715
查看次数

如何从父函数的范围访问变量?

我希望我的函数能够专门从其父函数访问外部变量.但是,使用global关键字设置范围太广; 我需要限制它.如何让这段代码吐出'Level 2'而不是'Level 1'?我必须上课吗?

<?php
$a = "Level 1";

function first() {
    $a = "Level 2";

    function second() {
        global $a;
        echo $a.'<br />';
    }

    second();
}

first();
//outputs 'Level 1'
?>
Run Code Online (Sandbox Code Playgroud)

php scope global function

5
推荐指数
2
解决办法
6757
查看次数

如何处理从条形码扫描仪返回的二进制数据?

我有一个2d条码扫描器(霍尼韦尔Xenon 1900).

扫描一维条形码很简单,因为扫描仪模拟键盘事件并发送纯文本.

但是当我扫描PDF417格式的二维条码时,扫描仪会发送二进制数据.如何捕获和解码此数据?某些符号是不可打印的,因此扫描到网页上的表单是行不通的.

javascript java barcode barcode-scanner

5
推荐指数
1
解决办法
2282
查看次数

字数在9-10个字符之间,其中0-2是数字

http://regexr.com?32uvo

我目前拥有的:

\b(?=[A-Z\d]{10})(?:[A-Z]*\d){0,2}[A-Z]*\b
Run Code Online (Sandbox Code Playgroud)

这只会匹配长度为10的字符串.我想将其更改为9到10个字符,其中2可以是数字.为什么这不起作用?

\b(?=[A-Z\d]{9,10})(?:[A-Z]*\d){0,2}[A-Z]*\b
Run Code Online (Sandbox Code Playgroud)

AFAIK,{9,10}应该是长度间隔.

regex

5
推荐指数
1
解决办法
173
查看次数

匹配字符串与shell样式的通配符(例如,*)

是否可以在if语句中使用通配符?

我的代码:

* =通配符

if ($admin =='*@some.text.here') {

}
Run Code Online (Sandbox Code Playgroud)

$admin 将是以下之一:

  • xvilo@some.text.here
  • bot!bot@some.text.here
  • lakjsdflkjasdflkj@some.text.here

php string wildcard

5
推荐指数
1
解决办法
3889
查看次数

从txt文件读取int并存储到数组

我试图从文本文件中读取整数并将它们存储到数组中.文本文件如下:

4
-9
-5
4
8
25
10
0
-1
4
3
-2
-1
10
8
5
8
Run Code Online (Sandbox Code Playgroud)

然而,当我运行我的代码时,我进入[I@41616dd6控制台窗口......

public static void main(String[] args) throws IOException
    {
        FileReader file = new FileReader("Integers.txt");
        int[] integers = new int [100];
        int i=0;
        try {
            Scanner input = new Scanner(file);
            while(input.hasNext())
            {
                integers[i] = input.nextInt();
                i++;
            }
            input.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        System.out.println(integers);
    }
Run Code Online (Sandbox Code Playgroud)

java arrays file

4
推荐指数
1
解决办法
2万
查看次数

如何修复PHP模块线程安全/非线程安全不匹配?

这超出了错误日志:

PHP Warning: PHP Startup: BOPEE Extension: Unable to initialize module
Module compiled with build ID=API20090626,TS,VC9
PHP    compiled with build ID=API20090626,NTS,VC9
These options need to match
 in Unknown on line 0

PHP Warning:  PHP Startup: CustomExt Module: Unable to initialize module
Module compiled with build ID=API20090626,TS,VC9
PHP    compiled with build ID=API20090626,NTS,VC9
These options need to match
 in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)

我如何获得PHP的非线程安全源?我在windows.php.net/download上找到的唯一下载链接是http://windows.php.net/downloads/releases/php-5.3.2-src.zip,这似乎是线程安全的代码---或者有没有办法告诉消息来源它实际上是非线程安全的?

我已经尝试过--disable-zts使用命令行configure.bat但是虽然这对输出产生了很好的影响configure.bat,但它似乎并没有使源代码更少线程安全.

php winapi php-extension

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

正则表达式自定义验证字符串

我需要制作一个正则表达式模式来检查整个输入字符串是否由字符az,AZ,0-9组成,中间没有空格.我尝试使用^[ ]*[a-zA-Z0-9][ ]*$查找,但由于某种原因它不起作用.

例如," dnsjkfs32NJ" 是一个有效的字符串,但"fds fsdfs"不是.

谢谢.:)

regex

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